﻿''' <summary>
''' 
''' </summary>
''' <remarks></remarks>
Public Interface IParametrable

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetParametres() As ObjectModel.ObservableCollection(Of String)

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <param name="name"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetValue(ByVal name As String) As Object

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <param name="name"></param>
    ''' <param name="value"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function SetValue(ByVal name As String, ByVal value As Object)

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <param name="name"></param>
    ''' <param name="value"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function ValidateValue(ByVal name As String, ByVal value As Object) As ValidationResult

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <param name="name"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Function GetInfo(ByVal name As String, ByVal info As String) As Object

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Event ValueChange As EventHandler(Of ValueChangeEventArgs)
End Interface

''' <summary>
''' 
''' </summary>
''' <remarks></remarks>
Public Enum ParametrableElementInfo

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Groupe

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Type

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Editor

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    EditorOptions

    ''' <summary>
    ''' 
    ''' </summary>
    ''' <remarks></remarks>
    Presentor
End Enum